import time
from pywinauto.application import Application
import subprocess
from pywinauto.application import Application


def main():
    app_path = r"C:\Users\YANG\Desktop\赢瑞科技\软件产品\ICMGROUP_Release_V118_20221121_0927_to_6\ICMMain.exe"
    app_dir = r"C:\Users\YANG\Desktop\赢瑞科技\软件产品\ICMGROUP_Release_V118_20221121_0927_to_6"  # 将此替换为应用程序所在目录

    # 启动应用程序并设置工作目录
    subprocess.Popen([app_path], cwd=app_dir)
    # 等待应用程序加载
    while True:
        try:
            app = Application(backend="uia").connect(title_re="CC飞机飞管计算机全连接架构内总线数据流设计开发", timeout=1)
            print("链接成功")
            break  # 如果连接成功，则应用程序已加载完成，退出循环
        except:
            time.sleep(1)  # 等待1秒后重试连接
    # 链接应用程序
    main_window = app.window(title_re="项目选择框")
    print("成功操作")

    # 根据控件属性查找控件
    # target_control = main_window.child_window(auto_id="your_control_id")  # 根据控件ID查找
    # 或者
    target_control = main_window.child_window(title="选定 Enter")  # 根据控件标题查找，title_re参数接受一个正则表达式
    # target_control = main_window.child_window(title="项目")  # 根据控件标题查找，title_re参数接受一个正则表达式
    # target_control = main_window.child_window(title="新建项目")  # 根据控件标题查找
    # 或者
    # target_control = main_window.child_window(class_name="your_control_class_name")  # 根据控件类名查找
    # 某些情况下，可能需要使用wait()方法等待控件加载完成
    # target_control.wait('ready', timeout=10)

    if target_control.exists():
        # 执行操作，例如点击
        target_control.invoke()
        # 或者
        # target_control.double_click()
        # 或者
        # target_control.right_click()
        # 等其他操作
    else:
        print("未找到目标控件")


if __name__ == '__main__':
    main()
